nominees[, `:=`(
  clean_category = tolower(gsub('.{7}$', '', category)),
  title = tolower(title),
  producer = tolower(producer),
  distributor = tolower(distributor)

)]


nom90 <- nominees %>% filter(year >= 1990)


shows <-
  nom90 %>%
  group_by(title, type) %>%
  summarise(no = n()) %>%
  spread (type, no)
`summarise()` has grouped output by 'title'. You can override using the `.groups` argument.
shows[is.na(shows)] <- 0
shows$totalType <- shows$Nominee + shows$Winner
shows$totalTypeRatio <- shows$Winner/shows$Nominee

# Top 20 shows by:
# Winners
WStop20 <-  shows[order(-shows$Winner), ][1:15, ]
WStop20Sort <- WStop20[order(WStop20$totalType), ]
WStop20Sort$title <- as.factor(WStop20Sort$title)



viz_dbar <- function(df, xaxis1, xaxis2, yaxis, xname1, xname2) {
  
  fig <- plot_ly(
    df,
    x = xaxis1,
    y = yaxis,
    type = 'bar',
    text=xaxis1,
    textposition='auto',
    orientation = 'h',
    name = xname1,
    marker = list(
      color = 'rgba(153, 153, 153, 0.6)',
      line = list(color = 'rgba(153, 153, 153, 1.0)', width = 3)
    )
  )
  
  fig <- fig %>% add_trace(
    x = xaxis2,
    name = xname2,
    text=xaxis2,
    textposition='auto',
    marker = list(
      color = 'rgba(255, 153, 0, 0.6)',
      line = list(color = 'rgba(255, 153, 0, 1.0)', width = 3)
    )
  )
  m <- list(l=200, r=20, b=10, t=10)
  fig <- fig %>% layout(
    barmode = 'stack',
    xaxis = list(title = "Nominee and Winners"),
    yaxis = list(categoryorder = "array",
                 categoryarray = yaxis,
                 automargin=T, ticksuffix = " "
                 ),
    margin=m
  )
  
  
  fig
}

viz_dbar(
  WStop20Sort,
  WStop20Sort$Nominee,
  WStop20Sort$Winner,
  WStop20Sort$title,
  "Nominee",
  "Winner"
)
NA
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGRhdGEudGFibGUpDQpsaWJyYXJ5KHBsb3RseSkNCmBgYA0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KDQp0dWVzZGF0YSA8LSB0aWR5dHVlc2RheVI6OnR0X2xvYWQoJzIwMjEtMDktMjEnKQ0KdHVlc2RhdGEgPC0gdGlkeXR1ZXNkYXlSOjp0dF9sb2FkKDIwMjEsIHdlZWsgPSAzOSkNCm5vbWluZWVzIDwtIGFzLmRhdGEudGFibGUodHVlc2RhdGEkbm9taW5lZXMpDQpgYGANCg0KYGBge3J9DQpub21pbmVlc1ssIGA6PWAoDQogIGNsZWFuX2NhdGVnb3J5ID0gdG9sb3dlcihnc3ViKCcuezd9JCcsICcnLCBjYXRlZ29yeSkpLA0KICB0aXRsZSA9IHRvbG93ZXIodGl0bGUpLA0KICBwcm9kdWNlciA9IHRvbG93ZXIocHJvZHVjZXIpLA0KICBkaXN0cmlidXRvciA9IHRvbG93ZXIoZGlzdHJpYnV0b3IpDQoNCildDQoNCg0Kbm9tOTAgPC0gbm9taW5lZXMgJT4lIGZpbHRlcih5ZWFyID49IDE5OTApDQpgYGANCg0KDQpgYGB7ciBCZXN0IHNob3c6IERvdWJsZSBiYXJjaGFydH0NCg0KDQpzaG93cyA8LQ0KICBub205MCAlPiUNCiAgZ3JvdXBfYnkodGl0bGUsIHR5cGUpICU+JQ0KICBzdW1tYXJpc2Uobm8gPSBuKCkpICU+JQ0KICBzcHJlYWQgKHR5cGUsIG5vKQ0KDQpzaG93c1tpcy5uYShzaG93cyldIDwtIDANCnNob3dzJHRvdGFsVHlwZSA8LSBzaG93cyROb21pbmVlICsgc2hvd3MkV2lubmVyDQpzaG93cyR0b3RhbFR5cGVSYXRpbyA8LSBzaG93cyRXaW5uZXIvc2hvd3MkTm9taW5lZQ0KDQojIFRvcCAyMCBzaG93cyBieToNCiMgV2lubmVycw0KV1N0b3AyMCA8LSAgc2hvd3Nbb3JkZXIoLXNob3dzJFdpbm5lciksIF1bMToxMCwgXQ0KV1N0b3AyMFNvcnQgPC0gV1N0b3AyMFtvcmRlcihXU3RvcDIwJHRvdGFsVHlwZSksIF0NCldTdG9wMjBTb3J0JHRpdGxlIDwtIGFzLmZhY3RvcihXU3RvcDIwU29ydCR0aXRsZSkNCg0KDQoNCnZpel9kYmFyIDwtIGZ1bmN0aW9uKGRmLCB4YXhpczEsIHhheGlzMiwgeWF4aXMsIHhuYW1lMSwgeG5hbWUyKSB7DQogIA0KICBmaWcgPC0gcGxvdF9seSgNCiAgICBkZiwNCiAgICB4ID0geGF4aXMxLA0KICAgIHkgPSB5YXhpcywNCiAgICB0eXBlID0gJ2JhcicsDQogICAgdGV4dD14YXhpczEsDQogICAgdGV4dHBvc2l0aW9uPSdhdXRvJywNCiAgICBvcmllbnRhdGlvbiA9ICdoJywNCiAgICBuYW1lID0geG5hbWUxLA0KICAgIG1hcmtlciA9IGxpc3QoDQogICAgICBjb2xvciA9ICdyZ2JhKDE1MywgMTUzLCAxNTMsIDAuNiknLA0KICAgICAgbGluZSA9IGxpc3QoY29sb3IgPSAncmdiYSgxNTMsIDE1MywgMTUzLCAxLjApJywgd2lkdGggPSAzKQ0KICAgICkNCiAgKQ0KICANCiAgZmlnIDwtIGZpZyAlPiUgYWRkX3RyYWNlKA0KICAgIHggPSB4YXhpczIsDQogICAgbmFtZSA9IHhuYW1lMiwNCiAgICB0ZXh0PXhheGlzMiwNCiAgICB0ZXh0cG9zaXRpb249J2F1dG8nLA0KICAgIG1hcmtlciA9IGxpc3QoDQogICAgICBjb2xvciA9ICdyZ2JhKDI1NSwgMTUzLCAwLCAwLjYpJywNCiAgICAgIGxpbmUgPSBsaXN0KGNvbG9yID0gJ3JnYmEoMjU1LCAxNTMsIDAsIDEuMCknLCB3aWR0aCA9IDMpDQogICAgKQ0KICApDQogIG0gPC0gbGlzdChsPTIwMCwgcj0yMCwgYj0xMCwgdD0xMCkNCiAgZmlnIDwtIGZpZyAlPiUgbGF5b3V0KA0KICAgIGJhcm1vZGUgPSAnc3RhY2snLA0KICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICJOb21pbmVlIGFuZCBXaW5uZXJzIiksDQogICAgeWF4aXMgPSBsaXN0KGNhdGVnb3J5b3JkZXIgPSAiYXJyYXkiLA0KICAgICAgICAgICAgICAgICBjYXRlZ29yeWFycmF5ID0geWF4aXMsDQogICAgICAgICAgICAgICAgIGF1dG9tYXJnaW49VCwNCiAgICAgICAgICAgICAgICAgdGlja3N1ZmZpeCA9ICIgIg0KICAgICAgICAgICAgICAgICApLA0KICAgIG1hcmdpbj1tDQogICkNCiAgDQogIA0KICBmaWcNCn0NCg0Kdml6X2RiYXIoDQogIFdTdG9wMjBTb3J0LA0KICBXU3RvcDIwU29ydCROb21pbmVlLA0KICBXU3RvcDIwU29ydCRXaW5uZXIsDQogIFdTdG9wMjBTb3J0JHRpdGxlLA0KICAiTm9taW5lZSIsDQogICJXaW5uZXIiDQopDQoNCmBgYA0KDQpgYGB7ciBCZXN0IHNob3c6IH0NCg0KDQoNCmBgYA==